//*****************************************************************************
// 1. Års eksamen @ Datamatiker - EASJ
// Holmegaard Heldagsskole Administrations system 
// 
// Denne klasse er udarbejdet af: Marc og Kasper
//*****************************************************************************
package view.elev;

import control.ControlUtil;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import model.*;
import org.hibernate.PropertyValueException;

public class OpretPanel extends javax.swing.JPanel {

    private ControlUtil controlUtil;
    private DefaultListModel fagModel;
    private DefaultListModel telefonModel;
    private DefaultListModel medicinModel;
    private DefaultListModel allergiModel;
    private ArrayList<String> midlertidigMedicin;
    private ArrayList<String> midlertidigAllergi;
    private ArrayList<String> midlertidigTelefon;

    public OpretPanel(ControlUtil controlUtil) {
        this.controlUtil = controlUtil;
        fagModel = new DefaultListModel();
        telefonModel = new DefaultListModel();
        medicinModel = new DefaultListModel();
        allergiModel = new DefaultListModel();
        midlertidigAllergi = new ArrayList<String>();
        midlertidigMedicin = new ArrayList<String>();
        midlertidigTelefon = new ArrayList<String>();
        initComponents();
        hentHold();
    }

    public void hentElever() {
        int value = vaelgElev.getSelectedIndex();
        vaelgElev.removeAllItems();
        vaelgElev.setEnabled(true);
        vaelgElev.addItem("Opret ny elev");
        Elev[] el = controlUtil.getElevHandler().hentElever();
        for (int i = 0; i < el.length; i++) {
            vaelgElev.addItem(el[i]);
        }
        vaelgElev.setSelectedIndex(value);
    }

    private void hentHold() {
        Hold[] hold = controlUtil.getHoldHandler().getHold();
        for (int i = 0; i < hold.length; i++) {
            holdCombo.addItem(hold[i]);
        }
    }

    private void opdaterElev(Elev elev) {
        klassetrin.setSelectedIndex(Integer.parseInt(elev.getKlassetrin()));
        ElevMedicin[] em = controlUtil.getElevHandler().hentElevMedicin(elev);
        medicinModel.clear();
        for (int i = 0; i < em.length; i++) {
            medicinModel.addElement(em[i]);
        }

        ElevAllergi[] ea = controlUtil.getElevHandler().hentElevAllergi(elev);
        allergiModel.clear();
        for (int i = 0; i < ea.length; i++) {
            allergiModel.addElement(ea[i]);
        }

        ElevTelefon[] et = controlUtil.getElevHandler().hentElevTelefon(elev);
        telefonModel.clear();
        for (int i = 0; i < et.length; i++) {
            telefonModel.addElement(et[i]);
        }

        note.setText(elev.getNote());
        cpr.setText(elev.getCpr());
        fornavn.setText(elev.getFornavn());
        efternavn.setText(elev.getEfternavn());
        holdCombo.setSelectedItem(elev.getHold());
        adresse.setText(elev.getAdresse());
        postnr.setText(elev.getPostnr().getPostNummer());
        by.setText(elev.getPostnr().getByen());

        rekvSkoleNavn.setText(elev.getElevRekvirskole().getRekvirSkole());
        rekvSkoleleder.setText(elev.getElevRekvirskole().getRekvirSkole());
        rekvAdresse.setText(elev.getElevRekvirskole().getRekvirAdresse());
        rekvPostNr.setText(elev.getElevRekvirskole().getPostnr().getPostNummer());
        rekvTelefon.setText(elev.getElevRekvirskole().getRekvirTelefon());
        rekvBy.setText(elev.getElevRekvirskole().getPostnr().getByen());
        rekvEmail.setText(elev.getElevRekvirskole().getRekvirEmail());



        indskrevet.setText(elev.getIndskrivelse().toString());



        if (elev.getBillede() != null) {
            billede.setIcon(new ImageIcon(elev.getBillede()));
        }

    }

    private void rydFelter() {
        klassetrin.setSelectedIndex(0);
        fagModel.clear();
        medicinModel.clear();
        allergiModel.clear();
        telefonModel.clear();
        indskrevet.setText("");
        note.setText("");
        cpr.setText("");
        fornavn.setText("");
        efternavn.setText("");
        holdCombo.setSelectedIndex(0);
        adresse.setText("");
        postnr.setText("");
        by.setText("");

        rekvSkoleNavn.setText("");
        rekvSkoleleder.setText("");
        rekvAdresse.setText("");
        rekvPostNr.setText("");
        rekvTelefon.setText("");
        rekvBy.setText("");
        rekvEmail.setText("");

    }

    private void nyDataPåElev(Elev elev, ElevRekvirskole rekvirSkole) {
        elev.setFornavn(fornavn.getText());
        elev.setEfternavn(efternavn.getText());
        elev.setHold((Hold) holdCombo.getSelectedItem());
        elev.setAdresse(adresse.getText());
        Postnr pnr = controlUtil.getElevHandler().hentPostnr(postnr.getText());
        elev.setPostnr(pnr);
        rekvirSkole.setRekvirSkole(rekvSkoleNavn.getText());
        rekvirSkole.setRekvirLeder(rekvSkoleleder.getText());
        rekvirSkole.setRekvirTelefon(rekvTelefon.getText());
        rekvirSkole.setRekvirEmail(rekvEmail.getText());
        rekvirSkole.setRekvirAdresse(rekvAdresse.getText());
        rekvirSkole.getElevs().add(elev);
        Postnr rekvPnr = controlUtil.getElevHandler().hentPostnr(rekvPostNr.getText());
        rekvirSkole.setPostnr(rekvPnr);
        elev.setElevRekvirskole(rekvirSkole);
        elev.setNote(note.getText());
        elev.setKlassetrin(klassetrin.getSelectedIndex()+"");
        elev.setSlettet(false);
        

    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        cprLabel = new javax.swing.JLabel();
        cpr = new javax.swing.JTextField();
        fornavnlabel = new javax.swing.JLabel();
        fornavn = new javax.swing.JTextField();
        efternavnLabel = new javax.swing.JLabel();
        efternavn = new javax.swing.JTextField();
        adresseLabel = new javax.swing.JLabel();
        adresse = new javax.swing.JTextField();
        postnrLabel = new javax.swing.JLabel();
        postnr = new javax.swing.JTextField();
        byLabel = new javax.swing.JLabel();
        by = new javax.swing.JTextField();
        billede = new javax.swing.JLabel();
        allergiScroll = new javax.swing.JScrollPane();
        allergier = new javax.swing.JList(allergiModel);
        medicinScroll = new javax.swing.JScrollPane();
        medicin = new javax.swing.JList(medicinModel);
        holdLabel = new javax.swing.JLabel();
        billedeLabel = new javax.swing.JLabel();
        medicinLabel = new javax.swing.JLabel();
        allergiLabel = new javax.swing.JLabel();
        holdCombo = new javax.swing.JComboBox();
        tilføjAllergiLabel = new javax.swing.JLabel();
        allergiForm = new javax.swing.JTextField();
        allergiTilføj = new javax.swing.JButton();
        tlføjTelefonLabel = new javax.swing.JLabel();
        telefonForm = new javax.swing.JTextField();
        telefonFjern = new javax.swing.JButton();
        AllergiFjern = new javax.swing.JButton();
        telefonTilføj = new javax.swing.JButton();
        rekvirskoleLabel = new javax.swing.JLabel();
        rekvSkoleleder = new javax.swing.JTextField();
        noteLabel = new javax.swing.JLabel();
        noteScroll = new javax.swing.JScrollPane();
        note = new javax.swing.JTextArea();
        gem = new javax.swing.JButton();
        indskrivningLabel = new javax.swing.JLabel();
        indskrevet = new javax.swing.JTextField();
        vaelgElevLabel = new javax.swing.JLabel();
        vaelgElev = new javax.swing.JComboBox();
        skolelederLabel = new javax.swing.JLabel();
        emailLabel = new javax.swing.JLabel();
        rekvAdresseLabel = new javax.swing.JLabel();
        rekvPostnrLabel = new javax.swing.JLabel();
        rekvTelefonLabel = new javax.swing.JLabel();
        rekvEmail = new javax.swing.JTextField();
        rekvAdresse = new javax.swing.JTextField();
        rekvPostNr = new javax.swing.JTextField();
        rekvSkoleNavn = new javax.swing.JTextField();
        skolenavnLabel = new javax.swing.JLabel();
        rekvTelefon = new javax.swing.JTextField();
        rekvByLabel = new javax.swing.JLabel();
        rekvBy = new javax.swing.JTextField();
        vaelgBillede = new javax.swing.JButton();
        telefonScroll = new javax.swing.JScrollPane();
        telefon = new javax.swing.JList(telefonModel);
        tlføjMedicinLabel = new javax.swing.JLabel();
        medicinForm = new javax.swing.JTextField();
        medicinFjern = new javax.swing.JButton();
        medicinTilføj = new javax.swing.JButton();
        telefonLabel = new javax.swing.JLabel();
        sletElev = new javax.swing.JButton();
        jLabel3 = new javax.swing.JLabel();
        klassetrin = new javax.swing.JComboBox();

        setMaximumSize(new java.awt.Dimension(1016, 696));
        setMinimumSize(new java.awt.Dimension(1016, 696));
        setPreferredSize(new java.awt.Dimension(1016, 696));
        setLayout(null);

        cprLabel.setText("CPR:");
        add(cprLabel);
        cprLabel.setBounds(20, 70, 80, 14);
        add(cpr);
        cpr.setBounds(20, 90, 150, 20);

        fornavnlabel.setText("Fornavn:");
        add(fornavnlabel);
        fornavnlabel.setBounds(20, 120, 100, 14);
        add(fornavn);
        fornavn.setBounds(20, 140, 150, 20);

        efternavnLabel.setText("Efternavn:");
        add(efternavnLabel);
        efternavnLabel.setBounds(20, 170, 100, 14);
        add(efternavn);
        efternavn.setBounds(20, 190, 150, 20);

        adresseLabel.setText("Adresse:");
        add(adresseLabel);
        adresseLabel.setBounds(20, 280, 100, 14);
        add(adresse);
        adresse.setBounds(20, 300, 150, 20);

        postnrLabel.setText("Post Nummer:");
        add(postnrLabel);
        postnrLabel.setBounds(20, 330, 130, 14);

        postnr.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                postnrKeyReleased(evt);
            }
        });
        add(postnr);
        postnr.setBounds(20, 350, 50, 20);

        byLabel.setText("By:");
        add(byLabel);
        byLabel.setBounds(20, 380, 70, 10);

        by.setEditable(false);
        add(by);
        by.setBounds(20, 400, 130, 20);

        billede.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        add(billede);
        billede.setBounds(740, 50, 250, 250);

        allergiScroll.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

        allergiScroll.setViewportView(allergier);

        add(allergiScroll);
        allergiScroll.setBounds(240, 30, 160, 100);

        medicinScroll.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

        medicinScroll.setViewportView(medicin);

        add(medicinScroll);
        medicinScroll.setBounds(240, 160, 160, 100);

        holdLabel.setText("Tilføj til Hold:");
        add(holdLabel);
        holdLabel.setBounds(20, 230, 90, 14);

        billedeLabel.setText("Billede:");
        add(billedeLabel);
        billedeLabel.setBounds(740, 30, 80, 14);

        medicinLabel.setText("Medicin:");
        add(medicinLabel);
        medicinLabel.setBounds(240, 140, 100, 14);

        allergiLabel.setText("Allergier:");
        add(allergiLabel);
        allergiLabel.setBounds(240, 10, 90, 14);

        holdCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Intet hold" }));
        add(holdCombo);
        holdCombo.setBounds(20, 250, 120, 20);

        tilføjAllergiLabel.setText("Tilføj allergi:");
        add(tilføjAllergiLabel);
        tilføjAllergiLabel.setBounds(430, 20, 80, 14);
        add(allergiForm);
        allergiForm.setBounds(430, 40, 120, 20);

        allergiTilføj.setText("Tilføj");
        allergiTilføj.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                allergiTilføjActionPerformed(evt);
            }
        });
        add(allergiTilføj);
        allergiTilføj.setBounds(430, 70, 70, 23);

        tlføjTelefonLabel.setText("Tilføj telefon:");
        add(tlføjTelefonLabel);
        tlføjTelefonLabel.setBounds(430, 280, 80, 14);
        add(telefonForm);
        telefonForm.setBounds(430, 300, 70, 20);

        telefonFjern.setText("Fjern");
        telefonFjern.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                telefonFjernActionPerformed(evt);
            }
        });
        add(telefonFjern);
        telefonFjern.setBounds(430, 360, 70, 23);

        AllergiFjern.setText("Fjern");
        AllergiFjern.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AllergiFjernActionPerformed(evt);
            }
        });
        add(AllergiFjern);
        AllergiFjern.setBounds(430, 100, 70, 23);

        telefonTilføj.setText("Tilføj");
        telefonTilføj.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                telefonTilføjActionPerformed(evt);
            }
        });
        add(telefonTilføj);
        telefonTilføj.setBounds(430, 330, 70, 23);

        rekvirskoleLabel.setText("Oplysninger om rekvirerende skole:");
        add(rekvirskoleLabel);
        rekvirskoleLabel.setBounds(230, 410, 180, 14);
        add(rekvSkoleleder);
        rekvSkoleleder.setBounds(230, 490, 170, 20);

        noteLabel.setText("Andet:");
        add(noteLabel);
        noteLabel.setBounds(640, 340, 130, 14);

        note.setColumns(20);
        note.setRows(5);
        noteScroll.setViewportView(note);

        add(noteScroll);
        noteScroll.setBounds(640, 360, 340, 170);

        gem.setText("Gem");
        gem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                gemActionPerformed(evt);
            }
        });
        add(gem);
        gem.setBounds(780, 540, 140, 50);

        indskrivningLabel.setText("Indskrivningsdato:");
        add(indskrivningLabel);
        indskrivningLabel.setBounds(20, 440, 110, 14);

        indskrevet.setEditable(false);
        indskrevet.setText("dd-mm-åååå");
        add(indskrevet);
        indskrevet.setBounds(20, 460, 100, 20);

        vaelgElevLabel.setText("Opret/Rediger elev:");
        add(vaelgElevLabel);
        vaelgElevLabel.setBounds(20, 10, 140, 14);

        vaelgElev.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Opret ny elev" }));
        vaelgElev.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                vaelgElevActionPerformed(evt);
            }
        });
        add(vaelgElev);
        vaelgElev.setBounds(20, 30, 150, 20);

        skolelederLabel.setText("Skoleleder:");
        add(skolelederLabel);
        skolelederLabel.setBounds(230, 470, 70, 14);

        emailLabel.setText("E-mail:");
        add(emailLabel);
        emailLabel.setBounds(230, 510, 50, 14);

        rekvAdresseLabel.setText("Adresse:");
        add(rekvAdresseLabel);
        rekvAdresseLabel.setBounds(230, 550, 60, 14);

        rekvPostnrLabel.setText("Post Nr:");
        add(rekvPostnrLabel);
        rekvPostnrLabel.setBounds(390, 550, 60, 14);

        rekvTelefonLabel.setText("Telefon");
        add(rekvTelefonLabel);
        rekvTelefonLabel.setBounds(410, 470, 40, 14);
        add(rekvEmail);
        rekvEmail.setBounds(230, 530, 220, 20);
        add(rekvAdresse);
        rekvAdresse.setBounds(230, 570, 150, 20);

        rekvPostNr.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                rekvPostNrKeyReleased(evt);
            }
        });
        add(rekvPostNr);
        rekvPostNr.setBounds(390, 570, 60, 20);
        add(rekvSkoleNavn);
        rekvSkoleNavn.setBounds(230, 450, 170, 20);

        skolenavnLabel.setText("Skolenavn:");
        add(skolenavnLabel);
        skolenavnLabel.setBounds(230, 430, 80, 14);
        add(rekvTelefon);
        rekvTelefon.setBounds(410, 490, 80, 20);

        rekvByLabel.setText("By:");
        add(rekvByLabel);
        rekvByLabel.setBounds(460, 550, 16, 14);

        rekvBy.setEditable(false);
        add(rekvBy);
        rekvBy.setBounds(460, 570, 120, 20);

        vaelgBillede.setText("Vælg billede");
        add(vaelgBillede);
        vaelgBillede.setBounds(870, 310, 90, 23);

        telefonScroll.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

        telefonScroll.setViewportView(telefon);

        add(telefonScroll);
        telefonScroll.setBounds(240, 290, 160, 100);

        tlføjMedicinLabel.setText("Tilføj medicin:");
        add(tlføjMedicinLabel);
        tlføjMedicinLabel.setBounds(430, 150, 80, 14);
        add(medicinForm);
        medicinForm.setBounds(430, 170, 120, 20);

        medicinFjern.setText("Fjern");
        medicinFjern.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                medicinFjernActionPerformed(evt);
            }
        });
        add(medicinFjern);
        medicinFjern.setBounds(430, 230, 70, 23);

        medicinTilføj.setText("Tilføj");
        medicinTilføj.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                medicinTilføjActionPerformed(evt);
            }
        });
        add(medicinTilføj);
        medicinTilføj.setBounds(430, 200, 70, 23);

        telefonLabel.setText("Telefon:");
        add(telefonLabel);
        telefonLabel.setBounds(240, 270, 100, 14);

        sletElev.setForeground(new java.awt.Color(255, 0, 0));
        sletElev.setText("slet elev");
        sletElev.setEnabled(false);
        sletElev.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                sletElevActionPerformed(evt);
            }
        });
        add(sletElev);
        sletElev.setBounds(670, 540, 90, 23);

        jLabel3.setText("klassetrin:");
        add(jLabel3);
        jLabel3.setBounds(20, 490, 100, 14);

        klassetrin.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0. klasse", "1. klasse", "2. klasse", "3. klasse", "4. klasse", "5. kasse", "6. klasse", "7. klasse", "8. klasse", "9. klasse" }));
        add(klassetrin);
        klassetrin.setBounds(20, 510, 80, 20);
    }// </editor-fold>//GEN-END:initComponents

    private void vaelgElevActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vaelgElevActionPerformed
        if (vaelgElev.getSelectedIndex() != 0 && vaelgElev.getItemCount() != 0) {
            opdaterElev((Elev) vaelgElev.getSelectedItem());
            cpr.setEnabled(false);
            sletElev.setEnabled(true);
        } else {
            sletElev.setEnabled(false);
            cpr.setEnabled(true);
            midlertidigAllergi = new ArrayList<String>();
            midlertidigMedicin = new ArrayList<String>();
            midlertidigTelefon = new ArrayList<String>();
        }
        if (vaelgElev.getSelectedIndex() == 0) {
            rydFelter();
        }
    }//GEN-LAST:event_vaelgElevActionPerformed

    private void postnrKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_postnrKeyReleased
        if (postnr.getText().length() == 0) {
            by.setText("");
        } else {
            by.setText(controlUtil.getElevHandler().hentPostnr(postnr.getText()).getByen());
        }
    }//GEN-LAST:event_postnrKeyReleased

    private void gemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_gemActionPerformed
        if (vaelgElev.getSelectedIndex() == 0) {
            Elev elev = new Elev();
            ElevRekvirskole rekvirSkole = new ElevRekvirskole();
            nyDataPåElev(elev, rekvirSkole);
            elev.setCpr(cpr.getText());
            elev.setIndskrivelse(new Date());
            try {
            controlUtil.getElevHandler().opretRekvirskole(rekvirSkole);
            elev.setElevRekvirskole(rekvirSkole);
                controlUtil.getElevHandler().opretElev(elev);  
            } catch (PropertyValueException ex) {
                
                 String text = "Du skal indtaste et CPR nr. samt en rekvirerende skole!";
                JOptionPane.showMessageDialog(this, text, "", JOptionPane.ERROR_MESSAGE);
                
            }
              
            
        } else {
            Elev elev = (Elev) vaelgElev.getSelectedItem();
            ElevRekvirskole rekvirSkole = elev.getElevRekvirskole();
            nyDataPåElev(elev, rekvirSkole);
            controlUtil.getElevHandler().opdaterElev(elev);
        }

//        mainScreen.opdaterElevLister();
    }//GEN-LAST:event_gemActionPerformed

    private void telefonTilføjActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_telefonTilføjActionPerformed
        if (telefonForm.getText().length() == 8) {

            if (vaelgElev.getSelectedIndex() == 0) {
                midlertidigTelefon.add(telefonForm.getText());
                telefonModel.addElement(telefonForm.getText());

            } else {
                Elev elev = (Elev) vaelgElev.getSelectedItem();
                controlUtil.getElevHandler().nyTelefon(new ElevTelefon(new ElevTelefonId(elev.getCpr(), telefonForm.getText()), elev));
                opdaterElev(elev);

            }
            telefonForm.setText("");
        }
    }//GEN-LAST:event_telefonTilføjActionPerformed

    private void AllergiFjernActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AllergiFjernActionPerformed
        if (vaelgElev.getSelectedIndex() == 0) {
            //new one
            midlertidigAllergi.remove(allergiForm.getText());
            allergiModel.removeElementAt(allergier.getSelectedIndex());
        } else {
            if (allergier.getSelectedIndex() != -1) {
                ElevAllergi ea = (ElevAllergi) allergier.getSelectedValue();
                controlUtil.getElevHandler().sletElevAllergi(ea);
                opdaterElev((Elev) vaelgElev.getSelectedItem());
            }
        }
        allergiForm.setText("");
    }//GEN-LAST:event_AllergiFjernActionPerformed

    private void allergiTilføjActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_allergiTilføjActionPerformed
        if (vaelgElev.getSelectedIndex() == 0) {
            //new one
            midlertidigAllergi.add(allergiForm.getText());
            allergiModel.addElement(allergiForm.getText());
        } else {
            //old one
            Elev elev = (Elev) vaelgElev.getSelectedItem();
            ElevAllergi ea = new ElevAllergi(new ElevAllergiId(elev.getCpr(), allergiForm.getText()), elev);
            controlUtil.getElevHandler().nyAllergi(ea);
            opdaterElev(elev);
        }
        allergiForm.setText("");

    }//GEN-LAST:event_allergiTilføjActionPerformed

    private void medicinTilføjActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_medicinTilføjActionPerformed
        if (vaelgElev.getSelectedIndex() == 0) {
            //new one
            midlertidigMedicin.add(medicinForm.getText());
            medicinModel.addElement(medicinForm.getText());
        } else {
            //old one
            Elev elev = (Elev) vaelgElev.getSelectedItem();
            ElevMedicin em = new ElevMedicin(new ElevMedicinId(elev.getCpr(), medicinForm.getText()), elev);
            controlUtil.getElevHandler().nyMedicin(em);
            opdaterElev(elev);
        }
        medicinForm.setText("");
    }//GEN-LAST:event_medicinTilføjActionPerformed

    private void medicinFjernActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_medicinFjernActionPerformed
        if (vaelgElev.getSelectedIndex() == 0) {
            //new one
            midlertidigMedicin.remove(medicinForm.getText());
            medicinModel.removeElementAt(medicin.getSelectedIndex());
        } else {
            if (medicin.getSelectedIndex() != -1) {
                ElevMedicin em = (ElevMedicin) medicin.getSelectedValue();

                controlUtil.getElevHandler().sletElevMedicin(em);
                opdaterElev((Elev) vaelgElev.getSelectedItem());
            }
        }
        medicinForm.setText("");
    }//GEN-LAST:event_medicinFjernActionPerformed

    private void telefonFjernActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_telefonFjernActionPerformed
        if (vaelgElev.getSelectedIndex() == 0) {
            //new one
            midlertidigTelefon.remove(allergiForm.getText());
            
            telefonModel.removeElementAt(telefon.getSelectedIndex());
        } else {
            if (telefon.getSelectedIndex() != -1) {
                ElevTelefon et = (ElevTelefon) telefon.getSelectedValue();
                controlUtil.getElevHandler().sletElevTelefon(et);
                opdaterElev((Elev) vaelgElev.getSelectedItem());
            }
        }
        telefonForm.setText("");
    }//GEN-LAST:event_telefonFjernActionPerformed

    private void rekvPostNrKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_rekvPostNrKeyReleased
        if (rekvPostNr.getText().length() == 0) {
            rekvBy.setText("");
        } else {
            rekvBy.setText(controlUtil.getElevHandler().hentPostnr(rekvPostNr.getText()).getByen());
        }
    }//GEN-LAST:event_rekvPostNrKeyReleased

    private void sletElevActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sletElevActionPerformed
        Elev elev = (Elev) vaelgElev.getSelectedItem();

        nyDataPåElev(elev, elev.getElevRekvirskole());
        elev.setSlettet(true);
        controlUtil.getElevHandler().opdaterElev(elev);
        vaelgElev.setSelectedIndex(0);
        hentElever();


//        mainScreen.opdaterElevLister();
    }//GEN-LAST:event_sletElevActionPerformed
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton AllergiFjern;
    private javax.swing.JTextField adresse;
    private javax.swing.JLabel adresseLabel;
    private javax.swing.JTextField allergiForm;
    private javax.swing.JLabel allergiLabel;
    private javax.swing.JScrollPane allergiScroll;
    private javax.swing.JButton allergiTilføj;
    private javax.swing.JList allergier;
    private javax.swing.JLabel billede;
    private javax.swing.JLabel billedeLabel;
    private javax.swing.JTextField by;
    private javax.swing.JLabel byLabel;
    private javax.swing.JTextField cpr;
    private javax.swing.JLabel cprLabel;
    private javax.swing.JTextField efternavn;
    private javax.swing.JLabel efternavnLabel;
    private javax.swing.JLabel emailLabel;
    private javax.swing.JTextField fornavn;
    private javax.swing.JLabel fornavnlabel;
    private javax.swing.JButton gem;
    private javax.swing.JComboBox holdCombo;
    private javax.swing.JLabel holdLabel;
    private javax.swing.JTextField indskrevet;
    private javax.swing.JLabel indskrivningLabel;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JComboBox klassetrin;
    private javax.swing.JList medicin;
    private javax.swing.JButton medicinFjern;
    private javax.swing.JTextField medicinForm;
    private javax.swing.JLabel medicinLabel;
    private javax.swing.JScrollPane medicinScroll;
    private javax.swing.JButton medicinTilføj;
    private javax.swing.JTextArea note;
    private javax.swing.JLabel noteLabel;
    private javax.swing.JScrollPane noteScroll;
    private javax.swing.JTextField postnr;
    private javax.swing.JLabel postnrLabel;
    private javax.swing.JTextField rekvAdresse;
    private javax.swing.JLabel rekvAdresseLabel;
    private javax.swing.JTextField rekvBy;
    private javax.swing.JLabel rekvByLabel;
    private javax.swing.JTextField rekvEmail;
    private javax.swing.JTextField rekvPostNr;
    private javax.swing.JLabel rekvPostnrLabel;
    private javax.swing.JTextField rekvSkoleNavn;
    private javax.swing.JTextField rekvSkoleleder;
    private javax.swing.JTextField rekvTelefon;
    private javax.swing.JLabel rekvTelefonLabel;
    private javax.swing.JLabel rekvirskoleLabel;
    private javax.swing.JLabel skolelederLabel;
    private javax.swing.JLabel skolenavnLabel;
    private javax.swing.JButton sletElev;
    private javax.swing.JList telefon;
    private javax.swing.JButton telefonFjern;
    private javax.swing.JTextField telefonForm;
    private javax.swing.JLabel telefonLabel;
    private javax.swing.JScrollPane telefonScroll;
    private javax.swing.JButton telefonTilføj;
    private javax.swing.JLabel tilføjAllergiLabel;
    private javax.swing.JLabel tlføjMedicinLabel;
    private javax.swing.JLabel tlføjTelefonLabel;
    private javax.swing.JButton vaelgBillede;
    private javax.swing.JComboBox vaelgElev;
    private javax.swing.JLabel vaelgElevLabel;
    // End of variables declaration//GEN-END:variables
}
